/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Controlador;


import Modelo.Proveedor;
import Modelo.ProveedorModelo;
import java.sql.SQLException;
import java.util.Iterator;
import java.util.LinkedList;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
/**
 *
 * @author SAW
 */
public class ControlProveedor {

    ProveedorModelo mod= new ProveedorModelo();
    LinkedList lista;
    DefaultTableModel tablaModelo;
    private Proveedor prov= new Proveedor();

    public ControlProveedor() {
      
        lista=new LinkedList();
        tablaModelo=new DefaultTableModel();
    }

    //metodo para enviar una tabla y reciba una tabla
  public JTable cargaProveedorTabla(JTable tabla,String consulta,int tipo){//utilizo 2 parametros la tabla y la consulta, si la consulta es vacia
                                                           //trae todos los datos
        cleanTabla(tabla);
        tablaModelo=(DefaultTableModel) tabla.getModel();
	try
	{
            lista=mod.consultaProveedorTabla(consulta,tipo);
            Iterator it=lista.iterator();
            while( it.hasNext() )
            {
                prov=(Proveedor)it.next();
                String estado="Inactivo";
                if(prov.isEstado())
                    estado="Activo";

                tablaModelo.addRow
                (
                    new Object[]
                    {
                        prov.getNit(),prov.getRazonSocial(),prov.getRepresentanteLegal(),prov.getDireccion(),prov.getTelefono(),estado
                    }
                );
            }
            tablaModelo.addRow(new Object[]{});
     //       JOptionPane.showMessageDialog(null,"probando");
	}catch(Exception er){
		JOptionPane.showMessageDialog(null, "Error al cargar la lista de Proveedores de la base de datos, se presento " +
                        "\n un inconveniente al tratar de Buscar la informacion requerida " +
                        "\n por el sistema." +
                        "\n."+er.toString() , "Error en la Carga de Informacion...",JOptionPane.DEFAULT_OPTION);
	}
        return tabla;
    }
//buscar informacion de las linkedlist control de la informacion y hasNext

  public JTable cleanTabla(JTable tabla){
        tablaModelo=(DefaultTableModel) tabla.getModel();
        int x=tablaModelo.getRowCount();
	for(int i=-1;i<(x-1);i++)
		tablaModelo.removeRow(0);
        return tabla;
  }

/**
  * insertar datos a la base de datos
  * @param prov
  * @throws SQLException
  */
 public void setNuevoProveedor(Proveedor prov) throws SQLException {//
       mod.setNuevoProveedor(prov);
    }


 /**
   * consdulta proveedores
   * @param consulta por nit
   * @return
   * @throws SQLException
   */
  public Proveedor consultaProveedor(String consulta) throws SQLException{
     return mod.consultaProveedor(consulta);
  }

   /**
       * Consulta existencia del proveedor
       * @param codigo de producto
       * @return
       * @throws SQLException
       */
     public boolean isExist(String consulta) throws SQLException{
        Proveedor proveedor=new Proveedor();
        proveedor=mod.consultaProveedor(consulta);

        if(proveedor.getNit()!=null)
          return true;

      return false;
     }
}
